/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.foxinline.manager.pesquisar;

import br.com.foxinline.modelo.*;
import br.com.foxinline.servico.CursoServico;
import br.com.foxinline.servico.DisciplinaServico;
import br.com.foxinline.servico.DocenteServico;
import br.com.foxinline.servico.OfertaDisciplinaServico;
import br.com.foxinline.utilitario.Msg;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

/**
 *
 * @author laverson
 */
@ViewScoped
@ManagedBean
public class ManagerPesquisarOfertaDisciplina implements Serializable {

    @EJB
    DisciplinaServico disciplinaServico;
    @EJB
    CursoServico cursoServico;
    @EJB
    DocenteServico docenteServico;
    @EJB
    OfertaDisciplinaServico ofertaDisciplinaServico;
    private Docente docentePesquisar;
    private Docente docenteEditar;
    private Docente docenteVisualizar;
    private List<Docente> docentesPesquisar;
    private List<Docente> docentesEditar;
    private List<Docente> docentesVisualizar;
    private Disciplina disciplinaPesquisar;
    private Disciplina disciplinaEditar;
    private Disciplina disciplinaVisualizar;
    private Curso cursoPesquisar;
    private Curso cursoEditar;
    private Curso cursoVisualizar;
    private List<Curso> cursosPesquisar;
    private List<Curso> cursosEditar;
    private List<Curso> cursosVisualizar;
    private OfertaDisciplina ofertaDisciplinaPesquisar;
    private OfertaDisciplina ofertaDisciplinaEditar;
    private OfertaDisciplina ofertaDisciplinaVisualizar;
    private List<Disciplina> disciplinasPesquisar;
    private List<Disciplina> disciplinasEditar;
    private List<Disciplina> disciplinasVisualizar;
    private Horario horarioEditar;

    @PostConstruct
    public void init() {
        cursoPesquisar = new Curso();
        cursosPesquisar = cursoServico.pesquisarTodos();
        disciplinaPesquisar = new Disciplina();
        disciplinasPesquisar = new ArrayList<Disciplina>();
        docentePesquisar = new Docente();
        docentesPesquisar = new ArrayList<Docente>();
        ofertaDisciplinaPesquisar = new OfertaDisciplina();
    }

    public void atualizar() {
        try {
            ofertaDisciplinaEditar.setHorario(horarioEditar);
            ofertaDisciplinaEditar.setDocente(docenteEditar);
            ofertaDisciplinaEditar.setDisciplina(disciplinaPesquisar);
            ofertaDisciplinaServico.salvar(ofertaDisciplinaEditar);
            Msg.messagemInfo(Msg.SuccessFull);
        } catch (Exception e) {
            e.printStackTrace();
            Msg.messagemError(Msg.Failure);
        }
    }

//    public List<SelectItem> getDiasSemana() {
//        List<SelectItem> items = new ArrayList<SelectItem>();
//        for (DiasSemana tipo : DiasSemana.values()) {
//            items.add(new SelectItem(tipo, tipo.getSigla()));
//        }
//        return items;
//    }
    public void handleMudarDisciplinas() {
        if (cursoEditar != null && cursoEditar.getId() != null) {
            disciplinasEditar = disciplinaServico.pesquisar(cursoEditar);
        } else {
            disciplinasEditar = new ArrayList<Disciplina>();
        }
    }

    public void handleMudarDocente() {
        if (disciplinaPesquisar != null) {
            docentesPesquisar = docenteServico.pesquisar(disciplinaPesquisar, cursoEditar);
        } else {
            docentesPesquisar = new ArrayList<Docente>();
        }
    }

    public Curso getCursoEditar() {
        return cursoEditar;
    }

    public void setCursoEditar(Curso cursoEditar) {
        this.cursoEditar = cursoEditar;
    }

    public Curso getCursoPesquisar() {
        return cursoPesquisar;
    }

    public void setCursoPesquisar(Curso cursoPesquisar) {
        this.cursoPesquisar = cursoPesquisar;
    }

    public Curso getCursoVisualizar() {
        return cursoVisualizar;
    }

    public void setCursoVisualizar(Curso cursoVisualizar) {
        this.cursoVisualizar = cursoVisualizar;
    }

    public List<Curso> getCursosEditar() {
        return cursosEditar;
    }

    public void setCursosEditar(List<Curso> cursosEditar) {
        this.cursosEditar = cursosEditar;
    }

    public List<Curso> getCursosPesquisar() {
        return cursosPesquisar;
    }

    public void setCursosPesquisar(List<Curso> cursosPesquisar) {
        this.cursosPesquisar = cursosPesquisar;
    }

    public List<Curso> getCursosVisualizar() {
        return cursosVisualizar;
    }

    public void setCursosVisualizar(List<Curso> cursosVisualizar) {
        this.cursosVisualizar = cursosVisualizar;
    }

    public Disciplina getDisciplinaEditar() {
        return disciplinaEditar;
    }

    public void setDisciplinaEditar(Disciplina disciplinaEditar) {
        this.disciplinaEditar = disciplinaEditar;
    }

    public Disciplina getDisciplinaPesquisar() {
        return disciplinaPesquisar;
    }

    public void setDisciplinaPesquisar(Disciplina disciplinaPesquisar) {
        this.disciplinaPesquisar = disciplinaPesquisar;
    }

    public Disciplina getDisciplinaVisualizar() {
        return disciplinaVisualizar;
    }

    public void setDisciplinaVisualizar(Disciplina disciplinaVisualizar) {
        this.disciplinaVisualizar = disciplinaVisualizar;
    }

    public List<Disciplina> getDisciplinasEditar() {
        return disciplinasEditar;
    }

    public void setDisciplinasEditar(List<Disciplina> disciplinasEditar) {
        this.disciplinasEditar = disciplinasEditar;
    }

    public List<Disciplina> getDisciplinasPesquisar() {
        return disciplinasPesquisar;
    }

    public void setDisciplinasPesquisar(List<Disciplina> disciplinasPesquisar) {
        this.disciplinasPesquisar = disciplinasPesquisar;
    }

    public List<Disciplina> getDisciplinasVisualizar() {
        return disciplinasVisualizar;
    }

    public void setDisciplinasVisualizar(List<Disciplina> disciplinasVisualizar) {
        this.disciplinasVisualizar = disciplinasVisualizar;
    }

    public Docente getDocenteEditar() {
        return docenteEditar;
    }

    public void setDocenteEditar(Docente docenteEditar) {
        this.docenteEditar = docenteEditar;
    }

    public Docente getDocentePesquisar() {
        return docentePesquisar;
    }

    public void setDocentePesquisar(Docente docentePesquisar) {
        this.docentePesquisar = docentePesquisar;
    }

    public Docente getDocenteVisualizar() {
        return docenteVisualizar;
    }

    public void setDocenteVisualizar(Docente docenteVisualizar) {
        this.docenteVisualizar = docenteVisualizar;
    }

    public List<Docente> getDocentesEditar() {
        return docentesEditar;
    }

    public void setDocentesEditar(List<Docente> docentesEditar) {
        this.docentesEditar = docentesEditar;
    }

    public List<Docente> getDocentesPesquisar() {
        return docentesPesquisar;
    }

    public void setDocentesPesquisar(List<Docente> docentesPesquisar) {
        this.docentesPesquisar = docentesPesquisar;
    }

    public List<Docente> getDocentesVisualizar() {
        return docentesVisualizar;
    }

    public void setDocentesVisualizar(List<Docente> docentesVisualizar) {
        this.docentesVisualizar = docentesVisualizar;
    }

    public OfertaDisciplina getOfertaDisciplinaEditar() {
        return ofertaDisciplinaEditar;
    }

    public void setOfertaDisciplinaEditar(OfertaDisciplina ofertaDisciplinaEditar) {
        this.ofertaDisciplinaEditar = ofertaDisciplinaEditar;
    }

    public OfertaDisciplina getOfertaDisciplinaPesquisar() {
        return ofertaDisciplinaPesquisar;
    }

    public void setOfertaDisciplinaPesquisar(OfertaDisciplina ofertaDisciplinaPesquisar) {
        this.ofertaDisciplinaPesquisar = ofertaDisciplinaPesquisar;
    }

    public OfertaDisciplina getOfertaDisciplinaVisualizar() {
        return ofertaDisciplinaVisualizar;
    }

    public void setOfertaDisciplinaVisualizar(OfertaDisciplina ofertaDisciplinaVisualizar) {
        this.ofertaDisciplinaVisualizar = ofertaDisciplinaVisualizar;
    }
}
